/** 
 * @file 3.基本写法3.cpp
 * @author 18-工程视觉-黄星照
 * @brief 阅读下列代码，回答以下问题。
 *          1. 以下程序不能通过编译，请指出问题并修改代码
 *          2. 请指出下列代码会导致程序不安全的地方
 *          3. (可选)::std是什么意思，这种写法有什么好处
 *          4. (可选)int argc, char **argv 是什么意思
 * @date 2020-09-25
 */


/**
 * 1. void print(char*)未声明
 * 2. print中str访问越界导致ub
 * 3. 从顶级无名命名空间下查找std
 * 4. 调用程序时传递的命令数和命令数组首地址，argv[0]为程序运行目录
 */
#include <iostream>

int main(int argc, char **argv)
{
    char str(123456);
    print(&str);
}

void print(char* str)
{
    for (int i = 0; i <= 8;++i)
    {
        ::std::cout << str[i];
    }
}